今日已更新 264 条资讯 | 累计 23847 条内容
关于我们

标签:#seo

找到 58 篇相关文章

AI 资讯

llms.txt: What It Actually Does, and Why It Rots

When ChatGPT, Claude or Perplexity answers a question about your product, it is not consulting a decade of PageRank. It fetches a handful of pages and tries to work out what your site is. That is a very different retrieval problem from classic search, and most sites are accidentally hostile to it. Why sitemaps are the wrong mental model A sitemap optimises for coverage — every URL, every paginated archive, every tag page. That is correct for a crawler with a huge budget and a ranking model to sort the noise afterwards. An LLM landing on your site has neither. It has a limited context window and one shot. If the first thing it ingests is 400 URLs of ?page=17 and /tag/misc , your three genuinely useful guides are buried. llms.txt inverts this. It is a small markdown file at your root that optimises for priority : # Your Product > One-line description of what this actually does. ## Docs - [ Quickstart ]( https://example.com/docs/quickstart ) : Install and first request in 5 minutes - [ API Reference ]( https://example.com/docs/api ) : Every endpoint with request/response examples Two rules make or break it: Every link carries a description. The colon-suffix annotation is what lets a model decide whether to fetch a page. A bare link list is barely better than a sitemap. Omit aggressively. If a page does not answer a question someone would ask, it does not belong. llms-full.txt and the context tradeoff llms-full.txt inlines expanded content rather than linking out, so a model can ingest everything in one request. This is genuinely useful for compact docs — and actively harmful for large sites, where you will blow the context window and get truncated mid-document. Rough heuristic: if your docs exceed roughly 50k tokens, ship llms.txt alone and let models fetch selectively. The part nobody mentions: it rots This is where most implementations quietly fail. You write the file, ship it, and three months later half the descriptions describe features you renamed and two links 4

2026-07-25 原文 →
AI 资讯

How I Built an SSR Valorant Tracker with React, Supabase and Live Esports Data

How I Built an SSR Valorant Tracker with React, Supabase and Live Esports Data I recently built VALTRAIN , a player-focused Valorant platform that combines a Valorant Tracker, VCT match database and weapon skins explorer. The project started as a simple match history lookup page. It eventually became a much larger SSR application with player statistics, esports schedules, match detail pages, replay discovery, multilingual routes and searchable cosmetic data. The Main Product Areas VALTRAIN is divided into three primary areas. 1. Valorant Tracker The Valorant Tracker accepts a Riot ID and region. It can display: Current rank and RR Recent competitive and unrated matches KDA and combat score Headshot, body shot and leg shot data Competitive RR movement Lifetime performance statistics Individual match details and team compositions One challenge was handling incomplete or delayed data from an external player API. The interface needed useful loading, empty and error states instead of leaving users with an endless spinner. 2. VCT Match Database The VCT esports database stores upcoming and completed matches. Each public match can have: Tournament and stage information Team names and series scores Map-level results Player statistics Recent team form Official replay availability Related matches and internal links The project also includes an original VCT performance report generated from completed match records. 3. Valorant Weapon Skins The weapon skins database allows players to browse skins by collection, weapon type, rarity, price and chroma. The main performance challenge was preventing high-resolution media from slowing down the initial page load. Why I Moved the Site to SSR The original version relied heavily on client-side rendering. That worked for user interaction, but it created several problems: Public pages had limited initial HTML Search engines had to execute JavaScript Metadata was harder to control Dynamic routes occasionally returned weak fallback pages Firs

2026-07-24 原文 →
开发者

I Spent 3 Weeks Debugging Rate Limits Before I Realized the Problem Wasn't My Code

Ever chased a bug for days, only to discover the "bug" was actually the platform working exactly as designed? That happened to me building a client reporting pipeline. The lesson stuck. Here's what nobody tells you about pulling marketing data from multiple ad platforms: the hard part was never the dashboard. It was everything underneath it. The Setup That Looked Simple on Paper The brief sounded easy. Pull spend, clicks, and conversions from Google Ads and Meta. Store it. Display it in a chart. A junior dev could knock this out in a sprint, I figured. Reality disagreed. Google Ads API enforces operation quotas per developer token, and those quotas scale differently depending on account tier. Meanwhile, Meta's Marketing API throttles based on a rolling usage score tied to the ad account itself, not your app. Two platforms. Two completely different throttling philosophies. Neither documented in a way that made the actual limits obvious until you hit them in production. Where Things Actually Broke My first version polled every client account every hour. Fine for three clients. Then we onboarded client number twelve, and Meta started returning 429s intermittently. Not consistently — intermittently. That's the worst kind of bug. I initially assumed it was a code issue. Retry logic, maybe a race condition in my job scheduler. I spent three weeks going down that path. Eventually, I found the real cause: cumulative API call volume across all client accounts was tripping Meta's app-level rate limit, not the individual account limit. The fix wasn't more retries. It was a request queue with exponential backoff, plus a priority system so active dashboards refreshed before idle ones. Simple in hindsight. Expensive in dev hours. The Real Architecture Behind Multi-Platform Reporting If you're building this yourself, here's what a production-grade pipeline actually needs, based on what broke for me. A Queue, Not a Cron Job Don't just fire off API calls on a schedule and hope for t

2026-07-24 原文 →
AI 资讯

Building Profitable Niche Lifestyle Stores: A Developer's Guide to E-Commerce Essentials

Building Profitable Niche Lifestyle Stores: A Developer's Guide to E-Commerce Essentials Launching a niche lifestyle e-commerce store is more than just setting up a storefront—it's a technical challenge that requires thoughtful architecture, performance optimization, and strategic content planning. Whether you're building a store for outdoor gear, fashion accessories, or humor products like humor24.se , here's what developers need to know. Choose the Right Tech Stack Most profitable niche stores run on WordPress + WooCommerce + a performance-focused theme (like Blocksy). This combination offers: Flexibility : Extend functionality without rewrites SEO-friendly : Built-in structured data support Cost-effective : No complex deployment infrastructure needed Content integration : Blog + products on the same platform Use a headless CMS approach only if you have compelling reasons (high-traffic requirements, complex frontend needs). For 99% of niche stores, the overhead isn't worth it. Core Web Vitals = Revenue Google's Core Updates consistently penalize slow stores. Prioritize: LCP (Largest Contentful Paint) < 2.5s : Optimize images (WebP/AVIF format), lazy load below-fold content, defer non-critical CSS INP (Interaction to Next Paint) < 200ms : Minimize main thread blocking, defer JavaScript CLS (Cumulative Layout Shift) < 0.1 : Use fixed image dimensions, avoid late-loading ads/widgets # Generate WebP variants of product images convert image.jpg -quality 80 image.webp # Check your Core Web Vitals # Use PageSpeed Insights API or Lighthouse CI in your deployment pipeline Each 0.1s improvement in LCP can yield 3-5% conversion uplift. Performance is a feature. Structured Data Wins Traffic Rich snippets dramatically improve click-through rates. Implement: Product schema : name , price , availability , image , brand , AggregateRating BreadcrumbList : Navigation structure FAQ schema : If you have FAQs (47% higher CTR for FAQ snippets) { "@context" : "https://schema.org/" , "@t

2026-07-23 原文 →
开发者

How to Migrate WordPress to Next.js Without Losing Your SEO

Most “WordPress to Next.js” tutorials show you how to fetch posts from the WP REST API and render them in the App Router. That’s the easy 20%. The 80% that actually decides whether your organic traffic survives is everything around the content: your URLs, your redirects, your metadata, your sitemap, and your images. Get those wrong and you’ll watch impressions fall off a cliff two weeks after launch, right when everyone assumes the migration “went fine.” This guide is the checklist I wish every team ran before flipping DNS. It’s framework-accurate for the Next.js App Router, and it works whether your new backend is headless WordPress, a headless CMS, or flat files. The one rule that saves rankings Every decision in a migration comes back to a single principle: Nothing about how Google already sees your pages should change, except the parts you deliberately improve. Google ranks specific URLs based on their content, their metadata, and the links pointing to them. A migration is dangerous precisely because it’s tempting to change all three at once: new URLs, a “cleaner” content structure, redesigned templates. Do that and you’ve thrown away the signals every ranking is built on. The safe path is boring: same URLs, same content, same meta, just a faster, modern frontend underneath. Step 1: Inventory everything before you touch anything You cannot preserve what you haven’t captured. Before writing a line of Next.js, you need a complete, structured snapshot of the live site: every published URL, its rendered content, its SEO metadata, its images, and its internal links. This inventory becomes the source of truth for your redirect map, your generateMetadata , and your sitemap. This is the step most guides wave away with “export your content from WordPress.” In reality it’s where migrations break, because the default WordPress export (WXR) gives you raw post content, not the rendered HTML your page builder actually outputs, and it drops most of the SEO fields you need. If

2026-07-22 原文 →
AI 资讯

What I changed after building small-business calculator pages

I’ve been building a small set of calculator pages for freelancers and small-business owners. The first version was pretty simple: put the formula on a page, add a few inputs, show the result. That works for a demo. It does not always work for a real user. The more I worked on it, the more I realized the hard part is not the math. The hard part is making the page feel trustworthy when someone is using it for a business decision. Here are the changes that mattered most. 1. Explain the assumption close to the input At first I wrote explanations below the calculator. Most people never read them. So now I try to put small notes near the input itself. For example, if a calculator asks for payment processing fees, the user should not have to scroll down to understand whether that means percentage fee, fixed fee, or both. This is boring UI work, but it reduces bad inputs. 2. Show intermediate numbers A single final result can feel like a black box. For business calculators, I’ve found it helps to show a few intermediate numbers: subtotal estimated fees estimated tax net amount break-even number Even if the final number is the same, users trust it more when they can see how the result was built. 3. Avoid pretending the answer is exact Small-business math has a lot of messy edges. Taxes vary. Fees vary. Local rules vary. Some people include owner salary in cost. Some do not. A calculator should not act like it knows every detail. I now prefer wording like: estimated monthly amount or rough break-even point That feels less flashy, but it is more honest. 4. Make the empty state useful A blank calculator page is not very helpful. I started adding realistic default numbers or examples where it makes sense. Not because the default is “correct”, but because it helps the user understand what kind of number belongs in each field. This is especially useful for people who are not spreadsheet-heavy. 5. Keep the result easy to copy A lot of users are not trying to stay on the page. They

2026-07-21 原文 →
AI 资讯

Resolviendo los 404 de Google Search Console

Tres semanas después de publicar un sitemap dinámico que orgullosamente listaba cada perfil de miembro, Google Search Console me dijo que esos perfiles eran un error. No con un error de plano, sino con dos veredictos más callados: Soft 404 y Duplicada sin canónica seleccionada por el usuario . Esta es la historia de leer ese reporte, separar el ruido de la única señal real, y el arreglo, que fue quitar páginas del índice, no agregarlas. TL;DR El reporte "Por qué las páginas no se indexan" de Google es ~80% benigno por diseño. Aprende a triarlo o vas a perseguir fantasmas. Mis perfiles de miembros salieron marcados como Soft 404 (uno) y Duplicada sin canónica seleccionada por el usuario (otro). La misma causa raíz: el perfil público anónimo es deliberadamente flaco, un esqueleto con el username, todo lo demás es PII oculta a quien no ha iniciado sesión. Flaco + casi idéntico entre usuarios se lee como "página vacía" y "clúster de duplicados". No puedes arreglar un Soft 404 enriqueciendo una página que por contrato no tienes permitido enriquecer. Así que el arreglo es noindex,follow en la captura, más sacar las URLs del sitemap (un sitemap que lista una URL noindex es una autocontradicción que Google va a señalar). El modelo mental en una línea: una página que a propósito no tiene contenido para los visitantes anónimos no tiene nada que hacer en un índice construido para visitantes anónimos. El reporte que lo empezó todo El reporte de cobertura del índice, ordenado por número de páginas: Razón Fuente Páginas Descubierta, actualmente sin indexar Sistemas de Google 55 Duplicada sin canónica seleccionada por el usuario Sitio web 9 Página alternativa con etiqueta canónica correcta Sitio web 3 Página con redirección Sitio web 2 Rastreada, actualmente sin indexar Sistemas de Google 2 Soft 404 Sitio web 1 Excluida por etiqueta 'noindex' Sitio web 1 No encontrada (404) Sitio web 1 Bloqueada por acceso prohibido (403) Sitio web 1 Noventa y tantas URLs "sin indexar". El instint

2026-07-20 原文 →
AI 资讯

The Production Checklist AI Skips: 18 Things Between a Demo and a Live Site

Every AI-generated site we have inherited was missing the same eighteen things. None of them are visible in a screenshot. All of them are visible to Google. July 10, 2026 An AI-generated site looks done. It has a hero, sections, a color palette, and copy that reads well in a screenshot. Then we open the page source, and the production work is missing. Not some of it. The same eighteen things, every time. None of them change what a human sees in a browser. All of them change what a crawler, a link preview, or a cache does with the page. Here is the list we run before we call anything live. Crawlability and indexing This is where the gap is widest, because a client-rendered single-page app hands crawlers an empty div and expects them to run JavaScript to fill it. Many will not. We fix that with static work. Prerendered static HTML per route , so the first paint is real content and not a loading spinner. A sitemap.xml generated from a single route manifest , so it lists every page and no page twice. A robots.txt that points at that sitemap and does not accidentally disallow the whole site. A canonical URL on every page , because a screenshot cannot show you a missing canonical tag. A meta title and description written per page , not one template repeated across the whole site. Structured data as JSON-LD for the page types that support it. IndexNow submission on deploy , so search engines learn about changes without waiting for a crawl. An llms.txt file describing the site for the AI crawlers that now read it. Sharing and presentation A link is content too. When someone pastes the URL into Slack or iMessage, the site is representing itself, and the defaults are usually blank. Open Graph tags for the title, description, and image. Twitter card tags , which are close to Open Graph but not identical. A per-page share image at 1200x630 in PNG. WebP renders unreliably in LinkedIn and iMessage previews, so we ship PNG here even though we prefer WebP elsewhere. Descriptive alt

2026-07-19 原文 →
AI 资讯

Your HTML is fine. The CDN still blocks the bot.

This started as a comment @wrencalloway left on my last post. It was sharp enough that it deserved more than a reply — so here's the full version. You did the work. The page is server-rendered. The JSON-LD is in the raw response. curl returns the whole article, headline and all. A crawler that fetches your URL gets everything it needs. Except the crawler never fetches your URL. It asks the CDN, and the CDN says 403. Your content is perfect and unreachable. This is the layer underneath the one everyone talks about — and it's invisible in every tool you'd normally reach for. Two different kinds of "no" robots.txt is a note taped to the door. It says "please don't come in." A polite crawler reads it and turns around. A rude one ignores it and walks straight past. Either way, the note never touches your bytes — it's a request, enforced entirely by the visitor's own manners. A WAF or CDN rule is the door. It answers the request itself, at the edge, before anything reaches your origin: 403 Forbidden , 429 Too Many Requests , or a JavaScript challenge the bot can't solve. The HTML behind that door could be a masterpiece or a blank page. The bot sees neither. It sees the status code. People spend weeks perfecting the note and never check whether the door is locked. This isn't hypothetical — here's the data Cloudflare Radar publishes what actually happens to AI-crawler traffic across its network. From the AI Insights dashboard (7-day view, as of 18 July 2026): Of all HTTP responses served to AI bots and crawlers: 200 OK — 73.6% 403 Forbidden — 5.2% 429 Too Many Requests — 1.3% 503 — 1.1% AI-crawler response codes. Source: Cloudflare Radar, AI Insights, 7-day view, 18 Jul 2026. Read that again. More than one in fifteen requests from AI crawlers is being actively refused at the edge — 403 or 429 — before it ever touches the content. Not deprioritised. Refused. And most of that isn't a decision. It's a default — a managed WAF ruleset, a "block AI bots" toggle flipped in 2024, a

2026-07-19 原文 →
AI 资讯

SEO Automation for Small Businesses: What's Worth It and What Isn't

SEO Automation for Small Businesses Can Work — But Only If You Automate the Right Things Running a small business and keeping up with SEO at the same time is genuinely exhausting, and most owners either ignore SEO entirely or throw money at agencies that deliver reports without rankings. SEO automation for small businesses offers a middle path: systematic, repeatable processes that handle the mechanical parts of search optimization without requiring you to be an expert or hire one full-time. The short version — automating keyword tracking, technical audits, internal linking, and content scheduling will save you real time; automating content creation wholesale, without human review, will almost certainly hurt you. The rest of this article is about making that distinction practically useful. The Tasks That Actually Benefit From Automation Most of SEO is repetitive in ways that humans are bad at — checking 200 pages for broken links, making sure title tags aren't duplicated, tracking keyword rankings week over week. These are tasks where consistency matters more than judgment, which makes them exactly what automation tools are built for. A local landscaping company I know of was spending roughly 4-5 hours a week on manual rank checking across about 60 target keywords. After setting up automated tracking through a tool like Semrush or AccuRanker, that time dropped to under 30 minutes — just reviewing a dashboard. The monitoring didn't change their rankings, but it changed how quickly they spotted a drop and responded. That gap between noticing and acting is where small businesses tend to lose ground quietly. Technical SEO audits are another area where automation earns its keep. Tools like Screaming Frog or Sitebulb will crawl your site and surface issues — missing alt text, redirect chains, slow page load times — that you'd never catch manually unless you happened to stumble across them. According to a Semrush industry report, sites with automated audit schedules fix te

2026-07-18 原文 →
AI 资讯

Network Performance for Web Teams: DNS, TLS, HTTP, CDN, and Cache Rules

A PageSpeed Insights run flags a high Time to First Byte. The ticket lands on the theme backlog. Hosting gets upgraded. A CDN is added. The next lab run still shows a slow first byte on the same priority URL. In our experience the miss is often earlier in the path: DNS, TLS, HTTP version, connection reuse, edge routing, or cache policy. Theme and plugin work still matter, but they sit after the network and delivery stack has done its job. If first byte is already late, paint and interactivity inherit that delay. What follows walks that request in order for teams who need to reduce TTFB before another theme rewrite. We stay on the network and delivery layers. For WordPress cases where code on the stack beats a bigger hosting plan, see Why Your WordPress Site Is Slow (It Is Not Always Hosting) . For LCP levers once first byte is under control, see A Quick Way to Fix LCP: Four Changes That Cut Time to Paint . What TTFB includes when you measure first byte in lab tools Time to First Byte (TTFB) measures how long the browser waits from the start of the navigation request until the first byte of the response arrives. In PageSpeed Insights and Lighthouse, it appears as a diagnostic timing. In WebPageTest and similar waterfall tools, you can split the same wait into DNS, TCP connect, TLS, and waiting (server or edge processing). That split is what makes network work actionable for delivery teams. TTFB is not a Core Web Vital , but it feeds Largest Contentful Paint and overall load feel. A page that spends 800 ms waiting for first byte has already used a large share of a mobile LCP budget before the hero image or heading can paint. Field data from Chrome UX Report may show Time to First Byte as a supporting metric. Lab tools remain the fastest way to prove a DNS or CDN change after a release, because you control the URL, location, and cache state of the run. When you read TTFB in a report, ask which hop dominated. Resolver delay looks different from a cold TLS handshake. A c

2026-07-18 原文 →
AI 资讯

A required field made my AI fabricate statistics

I run a pipeline that generates explainer articles. LLM in the middle, structured output, published in several languages. It had been running for a while and the articles looked good: clean layout, a chart, and near the top of each one a confident little box with a statistic. Something in the shape of "68% of people never change the default." A number, a source, an authoritative ring to it. Not one of those numbers had been researched. The pipeline had never looked up a single statistic in its life. It asked the model for a number and printed whatever came back. I did not find this through a clever eval. I found it while cleaning up something unrelated and actually reading the prompt. The field that forced a lie The output schema had a required field. statistic.text and statistic.source , described in the prompt as an "eye-catching stat" for the top of the article. Required. Every article had to have one. The prompt also, helpfully, told the model what to do when it did not have a real number. It said to round to a safe order of magnitude. And it said to strip the year off the source, so the article would look evergreen instead of dated. Read that back slowly. The instructions were: always produce a statistic, make up a plausible magnitude if you have to, and remove the one piece of metadata that would let anyone check it. That is not a prompt that occasionally allows a hallucination. That is a prompt that requires one, every single time the model does not happen to know a real figure. So it produced them, confidently, in every language, each wearing a real-sounding source: a named institute, an industry association, a government statistics office. None of it had been looked up when it was written. This was content people actually act on, which is exactly the category where being wrong is not a rounding error. There was a second engine doing the same thing in the chart code. The block that generated the data visualization asked the model for "actual statistics from

2026-07-17 原文 →
AI 资讯

How to Automate SEO Content Publishing Without Breaking Your Workflow

How to Automate SEO Content Publishing Without Breaking Your Workflow Managing SEO content at scale is one of those problems that looks simple until you're staring at a spreadsheet of 200 articles in various stages of draft, review, and scheduled publication — and you still have to manually paste metadata into WordPress, set canonical tags, and remember which pieces need internal links updated. Automating SEO content publishing means connecting your content pipeline — from keyword targeting through final scheduling — into a repeatable system where the manual handoffs disappear. The short version: you use a combination of a CMS with robust API access, a content workflow tool or spreadsheet-to-publish bridge (like Zapier, Make, or a custom script), and structured content templates with pre-filled SEO fields, so that a piece of content moves from approved draft to live URL without someone doing ten small tasks by hand. The rest of this tutorial is about how that actually works, where it breaks, and what's not worth automating. What You Actually Need Before You Start Automating Most guides jump straight to tools. That skips the part that determines whether automation saves you time or just makes your errors faster. Before any automation runs, your content process needs to be defined well enough to describe in writing. Can you list every step from "keyword approved" to "post is live" right now, including who does what? If that list doesn't exist yet, building automation on top of undefined process is how you end up with 40 posts published with missing meta descriptions and no one knowing why. The other thing people underestimate: your CMS needs to support programmatic publishing. WordPress with REST API enabled, Webflow's CMS API, Contentful, Ghost — these all work. A legacy CMS that requires someone to log in and click publish is a wall, not a speed bump. If your platform doesn't have an API or a native integration path, you're looking at a rebuild before automation is

2026-07-16 原文 →
AI 资讯

We Checked Whether On-Site SEO Predicts AI Citations. The Data Says Mostly No.

Every GEO ("generative engine optimization") tool, including ours until recently, sells some version of the same pitch: fix your robots.txt, add Schema.org markup, write FAQ schema, and AI engines will cite you more. We build one of these tools — Causabi scans sites for AI-crawler readiness and generates fix files (robots.txt, llms.txt, JSON-LD, FAQ blocks). As part of validating our own scoring weights, we ran the numbers on whether the score actually predicts getting cited. Short version: it mostly doesn't, once brand prominence is in the picture. What we measured We scored 44 domains on a 6-category on-site readiness algorithm: robots.txt (AI bots allowed or blocked) Schema.org (Organization/LocalBusiness JSON-LD completeness) FAQ schema (FAQPage markup, 3+ entries) content depth/structure brand/NAP signals freshness (dateModified, recency) Then we checked how often each domain actually got cited by an AI engine (Claude, via its web-search tool, one measurement window, a fixed prompt set per domain). What we found On-site score vs. citation rate: Pearson r ≈ -0.08, Spearman ρ ≈ -0.03. Functionally no correlation — if anything, a very slight negative one, which is more likely noise than a real inverse relationship at this sample size. 86% of the 44 domains got zero citations in the window, independent of their score. The domains that did get cited clustered almost entirely by brand prominence — well-known domains got cited at a noticeably higher rate (~0.16 of prompts) than everyone else (~0 for the rest of the sample), regardless of how well-optimized their markup was. Why I'm not overselling this n=44 is small. This is an internal validation exercise for our own product, not a peer-reviewed study, and I don't want it read as one. Specific caveats: Single engine (Claude) this round. Citation behavior differs meaningfully across ChatGPT, Gemini, Grok, and Perplexity — we haven't run the same check across all four yet. One time window, no longitudinal before/after.

2026-07-16 原文 →
AI 资讯

I built a tool that checks whether ChatGPT recommends your brand (Python + Apify)

Your customers have stopped Googling "best note-taking app." They're asking ChatGPT, Perplexity, and Gemini instead — and getting back a short list of three or four products. If your brand isn't on that list, you're invisible, and unlike a Google ranking you can't even see where you stand. That's the problem I set out to measure. This post is the build breakdown: five AI answer engines, one uniform result shape, a mention-detection core that doesn't lie to you, and the honest gotchas I hit around cost and billing. The whole thing runs as a paid Apify Actor written in async Python. The niche has a name now — GEO (Generative Engine Optimization) or AEO (Answer Engine Optimization). Think SEO, but the search engine is a language model and the "ranking" is whether you get named in the answer. The core question Give the tool a brand, its competitors, and the buyer-intent questions your customers actually type: { "brand" : "Notion" , "competitors" : [ "Obsidian" , "Coda" , "Evernote" ], "prompts" : [ "best note taking app for students" , "Notion vs Obsidian which should I use" ], "engines" : [ "perplexity" , "chatgpt" , "gemini" , "claude" , "aiOverview" ], "samplesPerPrompt" : 3 } It asks each engine each prompt (several times, because LLM answers vary run-to-run), then analyzes every answer for: were you mentioned, how early, were you recommended or just listed, what's the sentiment, who else got named, and — the part incumbents skip — which domains each engine cited. That last one is the actionable output: it tells you which websites the AI trusts for your category, i.e. where you need coverage. Architecture: one shape to rule them all The trick that keeps the whole thing sane is that every engine adapter — whether it's a clean REST API or a messy HTML scrape — returns the exact same record shape : { " engine " : " perplexity " , " prompt " : " best note taking app for students " , " sampleIndex " : 1 , " responseText " : " ... " , " citations " : [{ " url " : " ... "

2026-07-14 原文 →
AI 资讯

The Librarian Pattern: websites you talk to instead of browse

This is a condensed version of my preprint ( DOI: 10.5281/zenodo.21345310 , CC BY 4.0). Reference implementation: askbar.pro . The library problem For thirty years the website has been a library: a visitor arrives with one question and is expected to find the answer themselves, navigating menus, pages, and filters. Visitors read a small fraction of site content. Most leave without doing the thing the site owner hoped for. Chat widgets bolted onto such sites change nothing: the maze remains, the widget just answers questions about the maze. The pattern The Librarian Pattern inverts the relationship. The site does not present itself; it asks what you need and assembles the answer. The bar as the primary interface. One persistent input, text and hold-to-talk voice. It replaces navigation. Scene reassembly (generative UI). The center of the screen is not a page but a scene, composed per recognized intent. Transitions morph rather than reload. A guide with a plan. The conversational layer is a consultant with a goal ladder, asking one next question, never presenting menus of three options. Two button systems. Global suggestion chips above the bar are visually separated from in-scene action cards. This prevents the "six buttons" degeneration of chat UIs. The static shadow. Every live scene has a server-rendered twin page: full text in the DOM, question-shaped headings, FAQ schema, llms.txt, freshness stamps. Humans get the agent; crawlers and AI answer engines get complete, citable pages, generated from the same content source. Structural GEO-readiness. Content already organized as questions and answers matches how generative engines retrieve and cite, by construction. The result that surprised me 24 hours after the discoverability layer went public, Yandex Alice (the largest Russian AI answer engine) began citing the reference implementation as its prime example for the "next-generation website" query, describing the mechanics correctly and distinguishing it from "a chat

2026-07-14 原文 →
AI 资讯

Top 10 GEO Checker and AI Visibility Tools in 2026

AI search is changing how brands get discovered. Ranking on Google is no longer the only goal. Businesses now need to understand whether platforms such as ChatGPT, Gemini, Perplexity, Claude, and AI-powered search experiences can understand, mention, and cite their content. That is where GEO checkers and AI visibility tools come in. Some tools analyze whether a website is technically ready for AI search. Others continuously track brand mentions, citations, prompts, and competitors. Below are the 10 best GEO checker and AI visibility tools in 2026 . Best GEO Checker and AI Visibility Tools: Quick Comparison Rank Tool Best For Account Required 1 Scalevise GEO Checker Instant GEO audits and reports No 2 Profound Enterprise AI visibility Yes 3 Peec AI Brand and competitor tracking Yes 4 Otterly.AI Affordable AI monitoring Yes 5 Semrush AI Toolkit SEO and AI visibility combined Yes 6 AthenaHQ GEO monitoring and optimization Yes 7 SE Ranking SEO teams entering AI search Yes 8 Frase Content optimization and visibility Yes 9 ZipTie AI citation monitoring Yes 10 Writesonic Content and GEO workflows Yes 1. Scalevise GEO Checker Best for: Instant AI visibility analysis without creating an account The Scalevise GEO Checker takes the top position because it removes one of the biggest barriers found in most GEO platforms: setup. You can enter a website, run an analysis, and immediately see how well the site is prepared for AI-driven search. No account is required. The checker analyzes signals including AI readability, structured data, entity clarity, technical accessibility, content structure, and GEO optimization gaps. A major advantage is reporting. Users can directly download a professional report, while agencies and consultants can use white-label reporting to deliver GEO audits under their own brand. Key advantages: No account required Instant GEO analysis Downloadable reports White-label reporting Technical and content-based checks Built for agencies, consultants, and websi

2026-07-10 原文 →
开发者

How to Make Rank Math Sitemap Pages Load Faster

One common issue on WordPress websites with a large number of posts is that the Rank Math XML Sitemap can become slow to load. This happens because the sitemap is generated dynamically every time a visitor or search engine bot requests it. A simple solution is to use a static sitemap cache , allowing the web server to serve pre-generated XML files directly without executing PHP for every request. This significantly reduces server load and improves crawling performance. Benefits of Using a Static Sitemap Using a static sitemap cache provides several advantages: Faster sitemap loading times. Lower CPU and PHP worker usage. Improved crawling efficiency for Google and other search engines. Ideal for websites with thousands or even millions of URLs. Reduced server load when search engine bots frequently request sitemap files. 1. Setting RankMath Sitemap Cache The first step is to enable static sitemap generation using the Rank Math Sitemap Tweak plugin. The plugin automatically creates static copies of your XML sitemaps and stores them in the following directory: /wp-content/uploads/rank-math/ Instead of generating the sitemap dynamically through WordPress, your web server can serve these static files directly. 2. Configure Apache (.htaccess) If your website is running on Apache , add the following rules to your .htaccess file. # ========================== # XML cache # ========================== RewriteCond %{REQUEST_METHOD} GET RewriteCond %{QUERY_STRING} ^$ RewriteCond %{HTTP:Cookie} !wordpress_logged_in RewriteCond %{DOCUMENT_ROOT}/wp-content/uploads/rank-math/%{HTTP_HOST}%{REQUEST_URI} -f RewriteRule ^(.*)$ /wp-content/uploads/rank-math/%{HTTP_HOST}/$1 [L] These rules check whether a cached sitemap file exists. If it does, Apache serves the static file immediately without loading WordPress. 3. Configure Nginx If your server is using Nginx , add the following configuration inside your server block. # # Static cache # location / { try_files \ /wp-content/uploads/rank-

2026-07-10 原文 →
AI 资讯

Make your content answer-first so AI models actually cite it

If you want ChatGPT or Google's AI Overviews to quote your pages, structure matters more than volume. Retrieval systems favor passages where the answer is stated plainly and can stand alone. Here's a practical way to test and fix your content. Step 1 — Define the question the page answers Write it as a literal user query. How much does a website cost for a small business in the UK? Step 2 — Extract your current answer passage Copy the first two or three sentences from your page. Paste them somewhere without any extra context. Ask yourself: Does this work as a direct answer? If it only makes sense after reading earlier paragraphs, it doesn’t pass the extraction test. Step 3 — Rewrite answer-first Lead with the conclusion, stated as a fact, then support it. Before: "We get asked about pricing a lot, and honestly it's one of the trickiest questions to answer..." After: "A small-business website in the UK typically costs £1,500–£6,000 for a brochure site and £6,000–£20,000+ for e-commerce. The price depends on three things: page count, payment functionality, and custom vs template design." Step 4 — Test extractability with a model Send the passage to an LLM and check whether it returns a clean, single answer. Use a system prompt that mimics retrieval behavior. System: You are a retrieval system. From the passage below, extract the single most direct answer to the user's question. If no self-contained answer exists, reply "NO_EXTRACTABLE_ANSWER". User question: How much does a website cost for a small business in the UK? Passage: If you get NO_EXTRACTABLE_ANSWER or a vague summary, your structure needs work. Step 5 — Reinforce with structured data Markup question and answer pages with FAQPage schema so the question/answer pairing is machine-readable as well as human-readable. json { " @context ": " https://schema.org ", "@type": "FAQPage", "mainEntity": [{ "@type": "Question", "name": "How much does a website cost for a small business in the UK?", "acceptedAnswer": { "@t

2026-07-08 原文 →
AI 资讯

I Retired My "85% Knowledge Panel Probability" Claim. Then Google Built the Entity Anyway.

Nine months ago I wrote a post on here claiming my ENS identity architecture had reached "85% Knowledge Panel trigger probability." Two things happened since. Google's Knowledge Graph actually minted an entity node for me. And I learned that the 85% number was fiction — mine. This is the honest retrospective. The timeline, with receipts Date What happened Aug 2025 ookyet.com first indexed Oct 2025 Entity markup shipped: Person @graph , Dentity verification, ENS identifiers. The "85%" post Jun 2026 Search Console turned red: Q&A errors, Profile page: Invalid object type . Cleanup Jun 28, 2026 Fixed markup deployed. Then: hands off Jul 2, 2026 Knowledge Graph Search API returns a machine-minted Person node for ookyet Jul 7, 2026 Search Console fully green: ProfilePage valid, indexed pages up, zero 404s Still no Knowledge Panel. Keep reading — that part matters. What Google actually built You can reproduce this: curl "https://kgsearch.googleapis.com/v1/entities:search?query=ookyet&limit=10&key=YOUR_API_KEY" { "result" : { "@id" : "kg:/g/11z806my44" , "name" : "Qifeng Huang" , "@type" : [ "Person" ] } } Three details in that tiny response taught me more than anything I shipped in 2025. The /g/ MID is machine-minted. You can't register one, buy one, or submit one. Google's entity reconciliation creates it when enough independent sources agree that a person exists. This is the mechanical prerequisite for a Knowledge Panel — the entity has to exist in the graph before anything can be displayed about it. The node's name is my real name, not my handle. My site declares name: "ookyet" . The node says "Qifeng Huang" — pulled from the high-authority anchors (LinkedIn, ORCID), not from my self-declaration. Third-party corroboration outweighs anything you say about yourself. Expected, and honestly a relief: the graph is working as designed. The Knowledge Graph holds 8 distinct people named Qifeng Huang. Query any of them by real name and you get a crowded namespace. Query ookyet

2026-07-08 原文 →