Yahoo Search Ranking & Technical Visibility Plan (jackhighbowls.com)
1. How Yahoo Search Works (And Why Technical Changes Matter Here)
Understanding Yahoo’s architecture is the key to ranking on it:
- Yahoo’s Core Organic Index is Powered by Microsoft Bing: Yahoo Search derives its core web organic rankings, structured data parsing, and instant indexation directly from Microsoft Bing’s index (via the Bing/Yahoo Search Alliance) alongside Yahoo’s own crawler (
Slurp) for Yahoo-specific vertical features and snippet enrichment. - Demographic Sweet Spot for Lawn Bowls: Yahoo and Bing heavily over-index among UK & Commonwealth desktop/tablet users aged 50+ (due to default Windows/Edge/Yahoo Mail search bars)—which aligns directly with club lawn bowlers researching bowls bias, sizes, and rules.
- Different Ranking Signals than Google: Compared to Google, the Bing/Yahoo ranking engine places significantly heavier weight on:
- Exact-match keywords in
<title>,<h1>,<h2>, and URL slugs. - IndexNow instant push notifications (which Bing/Yahoo use to index new or updated pages in minutes rather than weeks).
- Unique OpenGraph (
og:image) and Schema.orgArticleimages for visual SERP cards. - Complete, untruncated
<meta name="description">tags and explicit<meta name="robots">directives. - Clean HTML-first content without excessive WordPress Gutenberg block comment clutter (
<!-- wp:paragraph -->).
- Exact-match keywords in
2. Technical Audit of jackhighbowls.com: 6 Yahoo/Bing Bottlenecks Found
During a technical inspection of the repository, I found 6 concrete codebase issues currently holding back your visibility on Yahoo and Bing:
| # | Technical Issue Found in Repo | File Location | Impact on Yahoo / Bing |
|---|---|---|---|
| 1 | Broken IndexNow Hostname & Path | tools/submit_indexnow.py |
HOST is hardcoded to "krussll.github.io" and KEY_LOCATION points to https://krussll.github.io/jhb/e3d7a858cb5d4380a133c9475c4eb18c.txt, while your live sitemap.xml and CNAME use jackhighbowls.com. IndexNow rejects cross-domain payloads (HTTP 403/422), meaning none of your IndexNow pings to Bing/Yahoo are being accepted! |
| 2 | 345 of 347 Posts Share the Exact Same og:image & Schema Image |
_includes/head.html |
Because 345 out of 347 posts do not have image: or background: in their YAML frontmatter (their images are embedded inside the post body as <img src="...">), head.html falls back to /img/posts/jack-high-bowls-success.png on 99.4% of your articles. Yahoo & Bing heavily penalize duplicate sitewide thumbnails in rich SERP cards and image search. |
| 3 | Meta Descriptions Are Artificially Truncated at 25 Words | _includes/head.html |
Line 11 runs truncatewords: 25 on every page.description, cutting carefully written 150–160 character SEO descriptions mid-sentence with ... in <meta name="description">, og:description, and Article JSON-LD. Yahoo relies directly on <meta name="description"> for snippet copy. |
| 4 | Yahoo! Slurp Missing from robots.txt + <meta name="robots"> Absent |
robots.txt & _includes/head.html |
robots.txt explicitly whitelists Bingbot and Applebot, but omits Yahoo’s native crawler (Slurp). Additionally, <head> lacks <meta name="robots" content="index, follow, max-image-preview:large, max-snippet:-1">, which authorizes Yahoo/Bing to show large thumbnail cards. |
| 5 | Dual-Sitemap Conflict in _config.yml |
_config.yml & sitemap.xml |
You have a custom root sitemap.xml template, AND jekyll-sitemap enabled in _config.yml. Furthermore, the custom sitemap.xml only marks /guides, /reviews, and /getting-started as weekly, leaving new hubs like /ai-coaching/ and /ai-coaching/prompt-builder/ as monthly. |
| 6 | Legacy WordPress HTML Noise (xmlns & <!-- wp:... -->) |
_posts/*.md |
Older posts contain <p xmlns="http://www.w3.org/1999/xhtml"> and hundreds of <!-- wp:paragraph --> comments inside the rendered HTML. Bing/Yahoo’s parser is stricter than Google’s about HTML-to-text ratio and invalid inline xmlns attributes on <p> tags. |
3. Step-by-Step Technical & On-Page Implementation Plan
flowchart TD
A["Phase 1: Crawl & Indexation\n(Fix IndexNow + Slurp + Robots Meta)"] --> B["Phase 2: SERP Snippet & Visual Cards\n(Auto-Extract Post Images + Un-truncate Meta Descriptions)"]
B --> C["Phase 3: On-Page & Schema Alignment\n(Exact-Match Titles + FAQ/Product Schema + Clean WP HTML)"]
C --> D["Phase 4: Bing Webmaster Tools Verification\n& Automated IndexNow Deployment"]
Phase 1: Fix Yahoo/Bing Indexation & Crawler Directives
1. Fix tools/submit_indexnow.py
Update HOST and KEY_LOCATION to match your production domain (jackhighbowls.com):
INDEXNOW_KEY = "e3d7a858cb5d4380a133c9475c4eb18c"
HOST = "jackhighbowls.com"
KEY_LOCATION = f"https://{HOST}/{INDEXNOW_KEY}.txt"
Why this matters: Every time you run python3 tools/submit_indexnow.py (or trigger it in GitHub Actions on deploy), Bing and Yahoo are notified within seconds to re-crawl updated reviews and guides.
2. Add Slurp (Yahoo Crawler) to robots.txt
Explicitly allow Yahoo’s Slurp crawler alongside Bingbot:
User-agent: Slurp
Allow: /
3. Add Rich Snippet Robots Meta & Bing Verification Support in _includes/head.html
Add explicit directives so Yahoo and Bing display large image previews and full text snippets:
<meta name="robots" content="index, follow, max-image-preview:large, max-snippet:-1, max-video-preview:-1">
(Plus an optional msvalidate.01 meta tag slot in _config.yml if you haven’t verified jackhighbowls.com via DNS in Bing Webmaster Tools).
Phase 2: Fix Visual SERP Thumbnails & Meta Descriptions in _includes/head.html
1. Auto-Extract the First Post Image When Frontmatter image: Is Missing
In _includes/head.html, if page.background, page.image, and page.header_image are all nil, we can use Liquid string splitting on page.content (extracting the first <img src="..."> URL) before falling back to /img/posts/jack-high-bowls-success.png.
- Result: All 345 blog posts will immediately get their own unique product/review photo in
<meta property="og:image">,<meta name="twitter:image">, and Schema.orgArticle/ReviewJSON-LD without even needing to manually edit 345 files (though we can also run a quick Python script to populateimage:in frontmatter for permanent cleanliness).
2. Stop Cutting Meta Descriptions Mid-Sentence
Replace truncatewords: 25 in _includes/head.html with full page.description support (only falling back to truncate: 160 when page.description is missing and page.excerpt is used).
- Result: Yahoo and Bing will display complete, persuasive meta descriptions in search results instead of cut-off sentences ending in
....
Phase 3: On-Page & Schema Optimizations for Yahoo’s Ranking Algorithm
Because Yahoo/Bing rely more heavily on exact-match lexical signals and structured HTML tables/lists than Google’s purely semantic vector matching:
- Exact-Match Title & H1 Alignment on “Best X for Y” & “vs” Pages:
- Yahoo rewards titles that front-load the exact query and include fresh year/category modifiers where appropriate (e.g., “Best Lawn Bowls for Beginners (2026 UK Buyer’s Guide)”) while keeping the
<title>under 65 characters so it doesn’t truncate on Yahoo desktop SERPs.
- Yahoo rewards titles that front-load the exact query and include fresh year/category modifiers where appropriate (e.g., “Best Lawn Bowls for Beginners (2026 UK Buyer’s Guide)”) while keeping the
- HTML Cleanup Across
_posts/(Removing WordPress Artifacts):- Strip invalid
xmlns="http://www.w3.org/1999/xhtml"attributes on<p>tags and remove<!-- wp:... -->Gutenberg comments across_posts/so Yahoo/Bing crawlers parse clean, high signal-to-noise HTML5.
- Strip invalid
FAQPage&ProductJSON-LD Schema:- Bing/Yahoo actively use
FAQPageandProductschema to populate “People Also Ask” and rich product cards on Yahoo SERPs. AddingFAQPageschema to key buyer guides andProductschema to/lawn-bowls-downloadable-drill-pack/directly feeds Yahoo’s rich result panels.
- Bing/Yahoo actively use
Phase 4: Off-Page & Ecosystem Signals Specific to Yahoo/Bing
- Bing Webmaster Tools (Powers Yahoo Organic):
- Ensure
jackhighbowls.com(not just the oldkrussll.github.io/jhb) is verified in Bing Webmaster Tools and submithttps://jackhighbowls.com/sitemap.xml.
- Ensure
- Social Profiles in
_config.yml&OrganizationSchema (sameAs):- Currently in
_config.yml,twitter_username,facebook_username, etc. are blank. Unlike Google, Bing/Yahoo explicitly use social signals and entitysameAslinks inOrganization/Personschema to verify brand authority.
- Currently in
4. Summary of Files We Can Update Immediately
| File | Proposed Technical Change |
|---|---|
tools/submit_indexnow.py |
Fix HOST = "jackhighbowls.com" and KEY_LOCATION = "https://jackhighbowls.com/e3d7a858cb5d4380a133c9475c4eb18c.txt" so IndexNow submissions to Bing/Yahoo succeed. |
_includes/head.html |
1. Remove the truncatewords: 25 cap when page.description is defined.2. Auto-extract the first post image for og:image and Schema image across all 345 posts.3. Add <meta name="robots" content="index, follow, max-image-preview:large, max-snippet:-1, max-video-preview:-1">. |
robots.txt |
Add explicit User-agent: Slurp (Allow: /) for Yahoo’s crawler. |
sitemap.xml & _config.yml |
Resolve the duplicate jekyll-sitemap plugin conflict and include /ai-coaching/ in high-priority weekly crawl rules. |
_posts/*.md |
Optional automated cleanup of <p xmlns="http://www.w3.org/1999/xhtml"> and <!-- wp:... --> comments + frontmatter image: population. |