案例 · SEO 与工程
我如何构建 télé.guide
télé.guide 是我的在线电视节目指南——无侵入式广告、无跟踪 Cookie——并设有 电影 版块:院线新片、电影页面,以及每天有理有据的今晚电视推荐。
需求
查一场足球赛或电影在哪个频道、什么时间播出,本应很简单。传统节目表往往臃肿、广告过多,或在重大体育赛事上信息不全。我想要一个快速、移动端友好、以内容为中心的网站——夏季尤其聚焦 2026 世界杯。
技术栈
- Next.js(App Router)用于服务端渲染、逐页元数据和轻量部署。
- XMLTV EPG 节目表:每日导入法国地面波与体育频道节目,本地缓存。
- API-Football 获取官方世界杯赛程(巴黎时区、阶段、球队)。
- OpenAI 撰写情境文案:世界杯期间的比赛页,如今的今晚推荐。
- TMDB 丰富电影及非体育类节目页面(演员、剧情、海报)。
电影与今晚电视
电影版块汇集当年院线新片、演员、导演和大制作影片。
每部电影在 /films/ 下只有一个页面,由 TMDB 和电视播出时的 EPG 节目表共同提供数据:无论在影院上映还是电视播出,电影始终保持同一个 URL。例如 瑞恩·库格勒的《罪人》。
带日期的 /ce-soir/ 页面提供今晚节目的点评精选——是观点,而不是节目表的复制——例如 2026年10月1日(星期四)晚间。文本只生成一次并缓存,页面在日期过后仍然在线。
2026 世界杯
赛事期间,一个专门的 hub 汇总当日比赛,每场比赛和每个比赛日各有独立页面。赛事结束后,这些 URL 以 301 重定向到今晚电视节目页,不留下任何失效页面。
主要难点:将 EPG 节目与真实世界杯比赛对应。节目单标题不规范(「世界杯」、球队简称、多频道转播)。我构建了匹配流水线:
- 过滤误匹配(俱乐部杯、自行车、非足球节目);
- 交叉比对标题与时间戳与 API 赛程;
- 显示频道 logo,本地资源缺失时使用 EPG fallback。
AI 文案与更新
引导脚本生成缺失文案;每日任务刷新依赖新数据的文本(世界杯期间的赛果,如今的今晚节目)。每段文字带时间戳存入 JSON 缓存:请求时从不调用 OpenAI,页面对 Google 保持稳定。
SEO 与可索引页面
动态 sitemap 包含首页、节目表、电影版块、每个电影页和近期的每个 /ce-soir/ 页面。元数据(title、description、Open Graph)按路由计算。节目表、电影页与今晚推荐之间的内链形成围绕「今晚电视看什么」或「今晚电影」等查询的连贯结构。当某个版块过时(如世界杯版块),其 URL 以 301 重定向到最相近的页面。
本作品集页面介绍该项目并链接至 télé.guide — 有利于从主题相关(Web 开发 + 电视媒体)的个人站点获取 backlinks。
相关链接
个人项目 — Laurent Remond,全栈开发者(霞慕尼与日內瓦)。