
Với sự trỗi dậy của các công cụ tìm kiếm và giao diện trò chuyện được hỗ trợ bởi AI, Tối ưu hóa Công cụ Tìm kiếm (SEO) truyền thống không còn là đủ. Các nhà phát triển ngày càng dựa vào AI để trả lời câu hỏi, tìm đoạn mã và gỡ lỗi. ChatGPT, Perplexity, Claude và AI Overviews của Google hiện là điểm dừng chân đầu tiên cho nhiều truy vấn kỹ thuật - và chúng bỏ qua hoàn toàn các thẻ meta của bạn.
Nếu bạn muốn tài liệu kỹ thuật, thư viện và blog kỹ thuật của mình có thể được tìm thấy trong thế giới mới này, bạn cần Tối ưu hóa Công cụ Tạo sinh (GEO): thực hành cấu trúc nội dung để các mô hình AI có thể phân tích, tổng hợp và trích dẫn một cách chính xác và đáng tin cậy.
GEO không phải là nhồi nhét từ khóa cho AI. Nó không phải là thao túng tập dữ liệu huấn luyện. Nó không phải là thêm "tính đến năm 2026" ở khắp mọi nơi.
GEO là viết nội dung theo một cấu trúc mà:
Hãy nghĩ theo cách này: một LLM xử lý tài liệu của bạn cần trả lời câu hỏi "Tôi có thể tự tin trích dẫn nguồn này không?" Công việc của bạn là làm cho câu trả lời đó là có.
Tín hiệu GEO đơn giản nhất bạn có thể thêm ngay bây giờ là llms.txt - một tệp văn bản thuần túy ở thư mục gốc của trang web của bạn, cho các trình thu thập thông tin AI biết trang web của bạn nói về điều gì và những trang nào quan trọng nhất.
Lấy cảm hứng từ robots.txt, nó được Jeremy Howard đề xuất vào năm 2024 và hiện được hỗ trợ bởi một số trình thu thập thông tin AI bao gồm Perplexity và Claude.md của Anthropic:
# llms.txt for locionic.com
# Updated: 2026-09-22
> Locionic is a Python and AI backend engineering blog by Loc Tran.
> Topics: Python, FastAPI, RAG, vector databases, DevOps, Kubernetes, data engineering.
## Key Pages
- [Blog index](https://locionic.com/en/blog): All technical posts
- [Vector databases and RAG](https://locionic.com/en/blog/vector-databases-rag): Core RAG architecture guide
- [Python async profiling](https://locionic.com/en/blog/python-async-memory-leak-profiling): Memory leak detection in async Python
- [FastAPI vs Litestar](https://locionic.com/en/blog/fastapi-vs-litestar-comparison): Framework comparison
## Optional: Full content index
- [All posts](https://locionic.com/sitemap.xml)
Cũng tạo llms-full.txt cho các trang web mà bạn muốn trình thu thập thông tin thu thập toàn bộ nội dung. Một số trình thu thập thông tin (như của Perplexity) thích điều này hơn phiên bản tối thiểu.
Tạo tệp:
touch public/llms.txt
# Then verify it's accessible:
curl https://yourdomain.com/llms.txt
GEO và SEO truyền thống chồng chéo rõ ràng nhất ở dữ liệu có cấu trúc. Cả trình thu thập thông tin AI và AI Overviews của Google đều ưu tiên các trang có Article hoặc TechArticle JSON-LD:
{
"@context": "https://schema.org",
"@type": "TechArticle",
"headline": "Generative Engine Optimization for Technical Docs",
"datePublished": "2026-08-04",
"dateModified": "2026-09-22",
"author": {
"@type": "Person",
"name": "Loc Tran",
"url": "https://locionic.com"
},
"publisher": {
"@type": "Organization",
"name": "Locionic"
},
"description": "How to structure developer documentation so AI search engines cite your content accurately.",
"articleSection": "Technical Documentation",
"keywords": ["GEO", "technical writing", "AI search", "documentation"],
"proficiencyLevel": "Expert"
}
Loại TechArticle (so với Article chung chung) báo hiệu rõ ràng cho trình thu thập thông tin rằng đây là nội dung kỹ thuật, giúp các mô hình AI phân loại và định tuyến nó tốt hơn.
Thay đổi GEO có tác động lớn nhất là viết theo cách có thể dễ dàng ánh xạ thành các cặp hỏi-đáp. Các mô hình AI được tinh chỉnh trên các tập dữ liệu hỏi-đáp. Nội dung tự nhiên phù hợp với định dạng này sẽ được trích dẫn thường xuyên hơn.
"Có nhiều cách tiếp cận việc lập chỉ mục cơ sở dữ liệu. Các nhà phát triển thường tranh luận về chỉ mục B-tree so với hash tùy thuộc vào các mẫu truy vấn liên quan."
Sự khác biệt giữa chỉ mục B-tree và hash là gì?
Chỉ mục B-tree hỗ trợ truy vấn phạm vi (
WHERE price > 100) và sắp xếp. Chỉ mục hash chỉ hỗ trợ tìm kiếm bằng nhau (WHERE id = 42) nhưng nhanh hơn cho các kết quả khớp chính xác. PostgreSQL sử dụng B-tree theo mặc định. Chỉ sử dụng chỉ mục hash khi bạn chỉ truy vấn cho sự bằng nhau chính xác.
Phiên bản thứ hai có thể được trích xuất nguyên văn. Một LLM có thể trích dẫn nó một cách tự tin. Phiên bản đầu tiên yêu cầu diễn giải, điều này gây ra lỗi và giảm khả năng được trích dẫn.
Các mô hình AI học từ ngữ cảnh. Một đoạn mã không đầy đủ sẽ huấn luyện các mô hình tạo ra các câu trả lời không đầy đủ. Luôn cung cấp:
# GEO-optimized example: Complete, runnable, with expected output
from fastapi import FastAPI
from pydantic import BaseModel
import uvicorn
app = FastAPI()
class Item(BaseModel):
name: str
price: float
@app.post("/items", response_model=Item)
async def create_item(item: Item) -> Item:
return item
# Run with: uvicorn main:app --reload
# Test: curl -X POST http://localhost:8000/items \
# -H "Content-Type: application/json" \
# -d '{"name": "widget", "price": 9.99}'
# Expected: {"name":"widget","price":9.99}
So sánh điều này với một đoạn mã bắt đầu bằng # ... setup code ... - các mô hình AI sao chép mẫu đó sẽ tạo ra các ví dụ bị lỗi cho người dùng của bạn.
Các LLM thường được hỏi các câu hỏi khái niệm như "Tại sao FastAPI sử dụng Pydantic để xác thực?" hoặc "Tại sao tôi nên sử dụng async trong Python?" Nếu tài liệu của bạn chỉ giải thích cách sử dụng một thứ gì đó, bạn sẽ không được tìm thấy trong các truy vấn này.
Mỗi phần chính nên có một tuyên bố tại sao rõ ràng:
## Why Use Connection Pooling?
PostgreSQL creates a new OS process per connection (~5MB RAM each).
Without pooling, 100 concurrent users = 100 processes = 500MB RAM
just for connections. A pool of 20 connections handles 100 users with
~100MB RAM by queueing and reusing connections.
**Rule of thumb:** Set pool size to `(num_cpu_cores * 2) + num_disks`.
For a 4-core server with 1 disk = 9 connections is your starting point.
Đoạn văn đó trả lời "tại sao sử dụng pooling" và "cách định cỡ nó" - hai truy vấn riêng biệt - trong một khối. Mỗi truy vấn có thể được trích dẫn độc lập.
Các mô hình AI xây dựng biểu đồ tri thức của chúng từ các định nghĩa có thẩm quyền. Nếu tài liệu của bạn định nghĩa một thuật ngữ rõ ràng và chính xác, định nghĩa đó có thể được trích dẫn bất cứ khi nào ai đó hỏi về thuật ngữ đó.
Viết các định nghĩa rõ ràng, độc lập ở đầu bất kỳ phần khái niệm nào:
**Topical authority** is a search ranking signal that measures how
comprehensively a website covers a specific topic cluster. A site
with 50 articles about Python async programming has higher topical
authority for Python async queries than a general programming blog
with one Python article, even if that one article has more backlinks.
Mẫu này - thuật ngữ in đậm, dấu hai chấm hoặc "là một", sau đó là một định nghĩa hoàn chỉnh bằng ngôn ngữ đơn giản - ánh xạ trực tiếp đến cách các LLM xây dựng kiến thức thực thể.
Tìm kiếm AI rất giỏi trong việc trả lời các câu hỏi so sánh: "Kafka vs RabbitMQ", "Pydantic v1 vs v2", "Docker vs Wasm". Bảng là tín hiệu rõ ràng nhất cho thấy nội dung của bạn trả lời các truy vấn này:
| Feature | Kafka | RabbitMQ |
|---|---|---|
| Message retention | Configurable (days/forever) | Until consumed |
| Replay | Yes (seek to any offset) | No |
| Throughput | Millions/sec | ~50K/sec |
| Protocol | Custom binary | AMQP |
| Best for | Event streaming, audit logs | Task queues, RPC |
Các bảng được phân tích bởi cả pipeline RAG (dưới dạng các sự kiện có cấu trúc) và tập dữ liệu tinh chỉnh LLM (dưới dạng các ví dụ so sánh). Một bảng so sánh được viết tốt là một trong những khoản đầu tư GEO có đòn bẩy cao nhất.
Các trình thu thập thông tin AI lập chỉ mục lại nội dung. Một lastmod hoặc dateModified trong frontmatter/JSON-LD của bạn cho trình thu thập thông tin biết nội dung này là hiện tại:
---
date: '2026-08-04'
lastmod: '2026-09-22' # Updated when content changes - not just layout
---
Cập nhật trường này khi bạn:
Đừng cập nhật nó cho các lỗi chính tả hoặc thay đổi CSS. Các trình thu thập thông tin AI phát hiện xem nội dung thực chất có thay đổi hay không.
Các mô hình AI được xây dựng với kiến trúc RAG không chỉ xem xét một trang - chúng theo các liên kết để xây dựng ngữ cảnh. Một trang có 5–10 liên kết nội bộ có liên quan báo hiệu:
Đối với mỗi bài đăng, hãy cố gắng liên kết đến:
Cấu trúc này cũng phù hợp với cách các LLM suy nghĩ về mối quan hệ chủ đề.
Chạy danh sách này trên mỗi bài đăng kỹ thuật trước khi xuất bản:
lastmod đã cập nhật: Frontmatter phản ánh lần chỉnh sửa cuối cùng thực tếTechArticle với dateModifiedGEO có thay thế SEO không? Không - Google vẫn là nguồn chính của lưu lượng tìm kiếm tự nhiên. GEO là bổ sung. Nhiều tối ưu hóa GEO (dữ liệu có cấu trúc, tiêu đề rõ ràng, nội dung hoàn chỉnh) cũng cải thiện SEO truyền thống. Hãy coi đó là việc viết cho cả con người và máy móc cùng một lúc.
Mất bao lâu để các thay đổi GEO cho thấy kết quả? Nhanh hơn SEO truyền thống. Các trình thu thập thông tin AI lập chỉ mục lại thường xuyên hơn Google. Nội dung mới với các tín hiệu GEO tốt có thể xuất hiện trong các trích dẫn tìm kiếm AI trong vòng vài ngày sau khi xuất bản. Tuy nhiên, việc xây dựng quyền hạn chủ đề cho AI (tương tự như quyền hạn miền cho Google) mất nhiều tháng sản xuất nhất quán.
Thay đổi GEO đơn lẻ có tác động lớn nhất là gì?
Thêm llms.txt và các ví dụ mã hoàn chỉnh. Cả hai đều nhanh chóng triển khai và có tác động ngay lập tức đến cách các trình thu thập thông tin AI lập chỉ mục trang web của bạn.
Liệu các LLM có trích dẫn nội dung của tôi nếu chúng được huấn luyện trước khi tôi xuất bản không? Không phải từ dữ liệu huấn luyện - nhưng hầu hết các tìm kiếm AI hiện đại (Perplexity, ChatGPT có tìm kiếm, Gemini) đều sử dụng RAG với việc thu thập thông tin web trực tiếp. Các hệ thống này có trích dẫn nội dung được xuất bản sau các thời điểm cắt huấn luyện, và các tối ưu hóa GEO trực tiếp cải thiện cách các pipeline RAG này truy xuất và chấm điểm các trang của bạn.
Một đội ngũ phát triển đang triển khai GEO cho tài liệu API mở rộng của họ. Họ đang tranh luận giữa việc sử dụng `llms.txt` và `llms-full.txt`. Với mục tiêu đảm bảo các mô hình AI có thể phân tích cú pháp và tổng hợp nội dung của họ một cách chính xác để trích dẫn đáng tin cậy, cách tiếp cận nào nhìn chung hiệu quả hơn cho tài liệu kỹ thuật toàn diện và tại sao?
GEO thực sự chỉ là viết rõ ràng cho những người đọc thông minh - ngoại trừ bây giờ một số người đọc đó là các mô hình AI sẽ trích dẫn bạn một cách chính xác hoặc diễn giải bạn một cách tồi tệ. Các kỹ thuật ở đây (ví dụ hoàn chỉnh, định nghĩa rõ ràng, cấu trúc hỏi-đáp, dữ liệu có cấu trúc) luôn làm cho tài liệu tốt hơn. GEO chỉ làm cho việc thực hiện chúng trở nên nghiêm ngặt hơn.
Bắt đầu với llms.txt, sau đó kiểm tra 10 bài đăng hàng đầu của bạn để tìm các ví dụ mã hoàn chỉnh và các phần "tại sao" rõ ràng. Hai thay đổi đó thôi sẽ tạo ra sự khác biệt.
Làm sạch log AI CLI, tạo biểu thức cron, giải mã JWT và tính quyền chmod offline.

Hướng dẫn DevOps về kiến trúc hạ tầng tác nhân AI quy mô lớn: theo dõi OpenTelemetry, hộp cát thực thi Firecracker, máy trạng thái và bộ ngắt mạch chi phí.
Đọc tiếp
Tìm hiểu sâu về Tạo sinh tăng cường truy xuất (RAG): các chiến lược phân đoạn, nhúng vector, tìm kiếm lai dày đặc-thưa và các pipeline sắp xếp lại.
Đọc tiếp
Vượt ra ngoài các copilot đến các agent tự động: vòng lặp gọi công cụ, tích hợp MCP, kiến trúc bộ nhớ, phối hợp đa agent và các giới hạn an toàn mà mọi nhóm kỹ thuật cần xác định trước khi triển khai agent.
Đọc tiếp