site: make the landing page crawlable, and drop the README's broken screenshots - #33
Merged
Conversation
Searching "kerf editor" turns up four other products called Kerf and no landing page of ours — the site is a project page on a shared github.io host with nothing to crawl but one JS-animated screen. - sitemap.xml is generated again (it was in disableKinds) and robots.txt now points at it; a custom robots template replaces Hugo's bare default, which has no Sitemap line and no domain-root robots.txt to inherit one from. - JSON-LD: a SoftwareApplication (with offers, so it is rich-result eligible — no invented ratings), Person, WebSite, WebPage and FAQPage in one @graph. safeJS, or html/template re-encodes jsonify's output into a quoted JS string literal that no crawler reads as JSON-LD. - a real FAQ section, rendered from data/faq.yaml — the same file the FAQPage markup is built from, so the marked-up answer is always the one on the page. - meta description cut from 258 to under 155 chars so it survives a snippet, robots max-image-preview:large for a full-size thumbnail, explicit twitter:* rather than relying on the og:* overlap, og:locale, canonical sitemap link, author. - title, hero lede and the download blurb name the category and the price the queries actually use: "AI video editor", "video editor", "free". - README links the site from the header, since the repo page is the one surface Google already ranks.
docs/img/screenshot-editor.png, -agent.png and -inspector.png have never existed, so the repo page — the one surface Google already ranks — renders three broken-image placeholders: one directly under the badges where the hero shot goes, two more after the feature table. Drop the <img> tags. docs/img/README.md keeps the shot list and now says what is true (nothing references these yet, add the tag back with the file) rather than promising placeholders that read as neglect.
Both methods Search Console offers, so the property can be verified without waiting on a second deploy if one is rejected — the site only publishes on a push to main, so a retry is a whole PR-and-Pages cycle. - googleSiteVerification param renders a <meta> in baseof's head, alongside the other tags and templated like them. Empty param renders nothing. - static/google879d6297466b7453.html publishes at the property root, /kerf/google879d6297466b7453.html. The token is not a secret: it is served in the page source by design and is only meaningful for a site Google already fetches from this URL. Whichever method verifies has to stay in place or the property un-verifies; the other one can be dropped.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Searching "kerf editor" turns up four other products called Kerf and no landing page of ours. The site is a project page on a shared
github.iohost with nothing to crawl but one JS-animated screen, and the repo page — the surface Google does rank — has been rendering three broken-image placeholders.Note: the first commit here is a recovery. It was written on
site/direct-downloads, but PR #32 merged only the commit before it and the branch was then deleted, so it survived as a dangling object and was never pushed.Crawlability
sitemap.xmlis generated again (it was indisableKinds), and alayouts/robots.txtpoints at it. Hugo's built-in robots.txt is a bareUser-agent: *with noSitemap:line, and a project page under a shared host has no domain-root robots.txt to inherit one from.Structured data
One
@graphinpartials/schema.html:SoftwareApplication(withoffersat price 0,operatingSystem,featureList,downloadUrl,codeRepository— what makes a downloadable app eligible for a rich result; no invented ratings), plusPerson,WebSite,WebPage,FAQPage. Needs| safeJS, orhtml/templatere-encodesjsonify's output into a quoted JS string literal no crawler reads as JSON-LD.Verified against the built page: the block parses as JSON, and all 9 FAQ answers match the visible text byte-for-byte.
Content
A real FAQ section rendered from
data/faq.yaml— the same file theFAQPagemarkup reads, so the marked-up answer is always the one on the page. Nine questions covering what people actually type: what it is, is it free, which platforms, does it need FFmpeg, which AI clients, 360/Insta360.Meta
Description cut 258 → 152 chars (it was truncating mid-sentence),
max-image-preview:large, explicittwitter:*instead of relying on theog:*fallback,og:locale, author. Title, hero lede and download blurb now carry "AI video editor", "video editor" and "free" as adjacent phrases.README
Adds the site link to the header, and removes the
<img>tags forscreenshot-editor.png,screenshot-agent.pngandscreenshot-inspector.png— none of which have ever existed.docs/img/README.mdkeeps the shot list and now says what is true (nothing references these yet; add the tag back with the file) instead of promising placeholders that read as neglect.Technical SEO alone will not win "kerf editor" — that query has four established products and an AI Overview reading it as laser-cutter terminology. The realistic wins are "kerf video editor" and "MCP video editor". Two follow-ups this PR does not cover: submitting the sitemap in Search Console (nothing indexes faster), and a real domain —
orellbuehler.github.io/kerf/is a subpath on a shared host with near-zero authority.