食谱站的 Recipe 标记里 recipeIngredient 把所有配料写成一句「面粉 200 克、鸡蛋两个、牛奶 100 毫升」,富媒体测试通过,但搜索结果里一直不出现食谱卡片。

一开始怀疑是「缺少 totalTime 和 recipeYield,卡片被判信息不全」,查了一圈,方向不对。

原因不止一个,得分开看。recipeIngredient 要求字符串数组,一项对应一种配料。还有一种是recipeInstructions 用了整段文本,没有按步骤拆分。

另外,配图尺寸低于卡片要求的最小值。

上来先看页面里配方字段的实际类型

curl -s https://www.example.com/recipe/1 | grep -o 'recipeIngredient[^]]*'

接着在模板里改成数组输出

grep -rn 'recipeIngredient' templates/recipe.html

然后核对时长和份量字段

curl -s https://www.example.com/recipe/1 | grep -o 'totalTime[^,]*'

复查富媒体检测结果

curl -s 'https://search.google.com/test/rich-results?url=https://www.example.com/recipe/1' | grep -c 'Recipe'

改之前我把相关日志按时间截了一段存着,事后对时间线用得上。

别只看报错消失,验证要多做一步。recipeIngredient 变为数组且每项独立,报告里 Recipe 有效条目增加,移动端搜索出现食谱卡。

容易忽略的是,富媒体测试只校验结构合法,能不能展示还看内容完整度和图片规格,两件事要分开查。这类问题最好一次改到位,反复小改反而容易把原因搅混。

作者 9823189