Google ved Decoder

Paste a ved value or a Google URL to see which result was clicked, where it sat on the page and when the page loaded.

Put one ved on each line, or paste whole URLs. Every ved= parameter in a URL is decoded, including those in google.com/url redirect links and in percent-encoded links.

Ctrl + Enter decodes

Results

Decoded values appear here, one card per ved.

What the ved parameter is

ved is a short code Google attaches to the links on its search results pages. When you click a result, the ved travels with the click so Google can log which link was used: what kind of link it was, where it sat on the page and, in longer forms, roughly when the page was loaded. You will find it in the data-ved attributes in the page source, in google.com/url?...&ved= redirect links copied from results, and in the address bar after you click through to another Google page, such as a related search or the Images tab.

Google has never published a specification. Everything this decoder knows comes from community reverse-engineering: search marketers and digital forensics researchers compared many ved values with the links they came from. The format can change at any time, and some fields are still unexplained.

How to use the decoder

Paste one ved per line, or paste whole Google URLs. The decoder pulls out every ved= parameter it finds, including ones inside percent-encoded redirect links, and decodes each value as you type. Turn off Decode as I type for very large inputs and press Decode or Ctrl + Enter instead.

Each ved gets a card with a one-line summary, for example "Normal result, position 7 on page 2, previous page loaded about 5 Oct 2026 14:03:22 UTC", followed by your local time. Below that is a table with the field number, the plain-text key if the field has one, its name, value and meaning, and a collapsible raw view of the decoded bytes. Copy JSON and Download .json export every result at once. Numbers too large for JavaScript to hold exactly are written as strings so no digits are lost. Everything runs in your browser and nothing is sent to a server.

The three versions

The first character is a version marker. Version 1 is plain text: comma-separated key:value pairs. Versions 0 and 2 are base64-encoded protobuf, a compact binary format. The decoder accepts both base64 alphabets (with - and _, or + and /), with or without = padding. Version 0 comes in a short form with only a few numbers and a long form, starting 0ahUKEw, that also carries a timestamp.

vedVersionDecodes to
0CFYQFjAG0, shortNormal result, position 7 on page 1, link index 86
1t:22,r:6,i:861The same values written as plain text
1t:3588,r:1,s:0,i:831Image result thumbnail, position 2 on page 1
0ahUKEwjJ2433hOHnAhUCvZ4KHcsCAsMQ4dUDCAs0, longUnknown type 60129, link index 11, previous page loaded about 20 Feb 2020 21:08:35 UTC
2ahUKEwj5wOHYmrfmAhUjuaQKHc5PBfAQFjAAegQIARAB2Normal result, position 1 on page 1, previous page loaded about 15 Dec 2019 08:13:22 UTC

Fields inside a ved

Protobuf fields are numbered, not named. These are the field numbers with an agreed meaning. Any other field is shown with its raw value and marked unknown.

FieldKey in version 1Meaning
1iLink index, unique for each link on the page. Missing in all known version 2 examples.
2tLink type (see the next table)
5Position within a group of sub-results, counted from 0
6rResult position on the page, counted from 0
7sStart position of the first result on the page: 10 on page 2, 20 on page 3, absent on page 1
13Nested message. 13.1.1 is a timestamp in microseconds; 13.1.2 and 13.1.3 are unexplained.
15Nested message seen in version 2, meaning unknown

Fields 13.1.2 and 13.1.3 are 4-byte values. Protobuf reads them little-endian, while some write-ups list the big-endian reading, so the table shows both to make it easy to compare with other sources.

Link types

Field 2 says what kind of link was clicked. These values have been matched to a link type:

TypeLinkTypeLink
22Normal result297News result
2060Sitelink311Video result
338One-line sitelink3588Image result thumbnail
745Breadcrumb2459Knowledge graph link
586"Jump to" link1617Ad
288Local result706Ad sitelink

Any other number is shown as "unknown type" followed by the number. Google adds new result features often, so unknown types are common, especially in recent ved values.

Reading position and page

Field 6 counts from 0 and starts again on every page, so the decoder adds 1 to show the position as people count it: r:6 is the seventh result. Field 7 holds the start position of the page. Dividing it by 10 and adding 1 gives the page number, so 1t:22,r:6,i:86,s:90 reads as position 7 on page 10. When field 7 is missing, the link was on page 1. The page number assumes 10 results per page, which matches how field 7 has been observed to step.

Position here means the order of the link on Google's page, which is not always the same as an organic rank. Ads, image packs, local results and other features can take positions too. For sub-results, such as the links inside a group, field 5 gives the position within that group.

The timestamp

In the long version 0 form and in version 2, field 13.1.1 is a number of microseconds since 1 January 1970 UTC. It is thought to be roughly the time the previous page loaded, not the moment of the click, so the decoder says "previous page loaded about". The time is shown in UTC and in your browser's time zone. Values that would fall before 2000 or after 2099 are shown as plain numbers instead of dates.

ved, ei and sxsrf

Google search URLs often carry two other opaque parameters next to ved. ei is commonly described as an identifier for one load of the results page, and sxsrf, as its name suggests, looks like a token against cross-site request forgery. Both are internal session tokens with no public description, and this tool does not decode them. To see what the documented parameters of a search URL do, such as q, hl, gl and start, paste the URL into the Google Search URL Generator.

Limits

  • The format is reverse-engineered. Google can change it without notice, and a decoded value that looks plausible can still be wrong.
  • A ved describes a link on a results page, not a person. None of the known fields holds an account, an IP address or the search query, and only Google can match a ved to its own logs.
  • Links in newer features such as AI Overviews and AI Mode may use link types that aren't listed above.
  • A ved alone does not tell you what was searched. The query is in the q parameter of the same URL, if it is there at all.

For rank tracking from scraped pages, the data-ved values let you tell link types apart. To turn a saved results page or a search API response into a table of ranked results, use the SERP Parser.

Sources

Google does not document ved. The field and link-type meanings here come from public reverse-engineering: Deed Poll Office's original 2013 write-up, Hindsight's notes on the newer versions and fields 13 and 15, and SerpApi's open source ved_decoder (MIT licence), whose example values are used in the tests.

Frequently asked questions

What does ved mean in a Google URL?

ved is a tracking code Google adds to the links on its results pages. It records which link was clicked: the kind of link, where it sat on the page and, in longer forms, roughly when the page loaded. Google does not document it, so its meaning comes from reverse-engineering.

Can a ved tell me what someone searched for?

No. None of the known fields contains the search query, an account or an IP address. The search terms are in the q parameter of the same URL, if they are there at all.

Is the position in a ved the same as a ranking?

Not always. It is the order of the link on that results page when it was shown, and ads, image packs, local results and other features also take positions. Use it as a rough guide, not as an organic rank.

Why does my ved show an unknown link type?

Only some link type numbers have been matched to a kind of link. Google adds new result features often, including AI Overviews and AI Mode, so recent ved values often contain type numbers nobody has documented yet.

How accurate is the ved timestamp?

It is stored in microseconds, but it is thought to mark roughly when the previous page loaded, not the moment of the click. Treat it as an approximate time and check it against other evidence.

Is what I paste sent anywhere?

No. Decoding runs in your browser and nothing is uploaded. Input under 200,000 characters is kept in your browser's local storage so it is still there when you come back, and Clear removes it.