Tool sites generate many similar URLs. The pieces below are the ones that change indexing and share cards. Examples are taken from the public HTML of Colorful Toolhub. The generators live on the SEO Marketing workbench and run in the browser.
One title and description per URL
The home page title is "Colorful Toolhub by Snamibo - Free Online Tools Collection", and the description names 1,400+ tools, 72 workbenches, and local processing. A category page should not repeat that sentence. Mobile PWA Tools is titled "Mobile PWA Tools - Free Online Tools" and names Compass and the PWA Manifest Generator. That difference is what a search snippet is for.
Keep titles near 60 English characters, with the page topic before the brand. Keep descriptions near 150–160 characters. If you leave the description empty, the engine will quote navigation or a random tool name.
Every indexable URL needs one rel=canonical to the URL you want indexed. Search URLs such as /?q= should canonicalize back to the stable page, not spawn an index entry per query.
The Meta Tag Generator emits title, description, canonical, and viewport together. Viewport is not a ranking hint, but a missing viewport is treated as a poor mobile page.
Open Graph is the share card, not the ranking
The home page sets og:type=website and og:image to https://toolhub.snamibo.com/og-toolhub.png at 1200×630. Use an absolute image URL. Relative paths often become a blank card in chat apps.
Also set twitter:card to summary_large_image with the same image. Not every crawler falls back from Open Graph to Twitter or the other way around.
Generate tags with the Open Graph Generator, then check truncation in the Open Graph Preview. After deploy, refresh the platform's own cache. A correct tag can still show the previous card for days.
hreflang has to be a closed set
The home page announces og:locale=en_US, og:locale:alternate=zh_CN, and JSON-LD inLanguage of en-US and zh-CN. That does not replace hreflang.
Each language URL needs the full set, including itself:
<link rel="alternate" hreflang="en" href="https://toolhub.snamibo.com/">
<link rel="alternate" hreflang="zh-CN" href="https://toolhub.snamibo.com/zh/">
<link rel="alternate" hreflang="x-default" href="https://toolhub.snamibo.com/">
The Chinese page needs the same three lines. A one-sided annotation is ignored. x-default is for visitors who match neither language. Build the set with the Hreflang Generator so the self-reference is not the line you forget.
robots.txt and the sitemap describe only URLs you can stand behind
robots.txt belongs at the origin root. Allow CSS and JavaScript. A Disallow: / cannot be undone by a noindex the crawler is not allowed to fetch.
User-agent: *
Allow: /
Sitemap: https://toolhub.snamibo.com/sitemap.xml
Write it in the Robots.txt Generator and probe real paths in the Robots.txt Tester: home, one category, one draft you intend to hide.
A sitemap should list only 200 OK, indexable, canonical URLs. Leave out site search and session parameters. changefreq and priority are mostly ignored. Generate XML with the Sitemap Generator, then drop 404s with the Dead Link Checker. A dead URL inside a sitemap is worse than no sitemap, because you handed the crawler the broken address.
JSON-LD only for what the page really does
The home page's JSON-LD is a WebSite plus an Organization. The site declares a SearchAction targeting https://toolhub.snamibo.com/?q={search_term_string}. Keep that only if the query string actually searches. A client-side filter that ignores the parameter on reload should not advertise a search action.
A tool page fits WebApplication better than a fake review snippet. Do not invent ratings. Draft with the Schema.org JSON-LD Generator and check required fields in Rich Results Test. A pass means the markup is well formed, not that Google will show a rich result.
Keep campaign parameters off the canonical URL
Build campaign links with the Tracking URL Builder. Canonicals and sitemap URLs stay clean. Otherwise one article becomes a pile of indexed parameter variants.
That loop is the whole controllable base for a static tool site that does not yet have an editorial blog: unique titles, canonicals, a 1200×630 share image, paired hreflang, a root robots file, a sitemap of live URLs, and JSON-LD that matches the page.
Top comments (0)