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.
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.
| ved | Version | Decodes to |
|---|---|---|
0CFYQFjAG | 0, short | Normal result, position 7 on page 1, link index 86 |
1t:22,r:6,i:86 | 1 | The same values written as plain text |
1t:3588,r:1,s:0,i:83 | 1 | Image result thumbnail, position 2 on page 1 |
0ahUKEwjJ2433hOHnAhUCvZ4KHcsCAsMQ4dUDCAs | 0, long | Unknown type 60129, link index 11, previous page loaded about 20 Feb 2020 21:08:35 UTC |
2ahUKEwj5wOHYmrfmAhUjuaQKHc5PBfAQFjAAegQIARAB | 2 | Normal 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.
| Field | Key in version 1 | Meaning |
|---|---|---|
| 1 | i | Link index, unique for each link on the page. Missing in all known version 2 examples. |
| 2 | t | Link type (see the next table) |
| 5 | Position within a group of sub-results, counted from 0 | |
| 6 | r | Result position on the page, counted from 0 |
| 7 | s | Start position of the first result on the page: 10 on page 2, 20 on page 3, absent on page 1 |
| 13 | Nested message. 13.1.1 is a timestamp in microseconds; 13.1.2 and 13.1.3 are unexplained. | |
| 15 | Nested 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:
| Type | Link | Type | Link |
|---|---|---|---|
| 22 | Normal result | 297 | News result |
| 2060 | Sitelink | 311 | Video result |
| 338 | One-line sitelink | 3588 | Image result thumbnail |
| 745 | Breadcrumb | 2459 | Knowledge graph link |
| 586 | "Jump to" link | 1617 | Ad |
| 288 | Local result | 706 | Ad 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
qparameter 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.