Result type is worth treating as a first-class field here. Image, shopping, and organic results have different structures, so a parser built around the blue-link layout can quietly return partial data on the others. I work with AllyHub, and allyhub.com has a related image-search workflow. Do you version separate parsers for each result type, or normalize them into one schema after collection?