Skip to content

v0.0.58: five findings from dogfooding, fixed

Latest

Choose a tag to compare

@bsbodden bsbodden released this 03 Nov 19:01
· 1 commit to main since this release

v0.0.58: five findings from dogfooding, fixed

Found by auditing a plain static site with 0.0.56 and 0.0.57 and reading the source behind each finding.

  • An inline <style> is not a render-blocking resource (#19). RENDER_BLOCKING_RESOURCES recommended inlining critical CSS and then counted the inline block, so a page with any CSS at all was flagged for good. An inline style costs no network round-trip before first paint; it is no longer counted, and the recommendation names the actual remedies.
  • A 401, 403, 405 or 429 is not a broken external link (#21). HEAD is refused by many hosts and a 403 or 429 is bot protection or a rate limit; Medium answers 403 to every crawler and every link to it was "broken". Those statuses are retried once with a browser-like GET and, if still refused, treated as indeterminate, like a timeout. A definite 4xx or 5xx on either request still counts.
  • /index.html is the homepage (#23). A site whose brand link points at index.html had its homepage keyed two ways, the link graph looked up the one the crawl had not stored, and NAV_NOT_IN_HTML reported zero links over ten static ones. canonicalPageUrl folds /index.html into /, the graph falls back to the first audited page when the entry URL is not among the keys, and a page's link to itself is not a link to another page.
  • Two recommendations now say what the checks accept (#24). FAQ_SCHEMA_MISSING asks for FAQPage only where each question heading is followed by its answer; a question mark is not evidence of a FAQ, and Google restricts the markup to real FAQ content. PLAINTEXT_EMAIL recommends a mailto: link with descriptive text instead of name[at]domain.com, which breaks the link for readers and screen readers.
  • The auto-fixer's structured-data fix states only what the page states (#20). It wrote a SoftwareApplication with a free Offer into every page that lacked schema. It now writes a WebSite for the site root and a WebPage elsewhere, named from the page's own title with its meta description, and never an Offer.
  • A lazy-loaded image's origin does not need a preconnect. MISSING_PRECONNECT no longer counts an origin used only by an image with loading="lazy" or fetchpriority="low", which the browser fetches after the critical path.

Packages: @rankcli/cli 0.0.58, @rankcli/agent-runtime 0.0.46, @rankcli/mcp-server 0.0.31.

Install

npm install -g @rankcli/cli    # or: brew install integrallis/tap/rankcli

Standalone binaries for macOS, Linux and Windows and the Claude Desktop extension (.mcpb) are attached below.