The default behaviour of the references to some certain counter do not provide the name of the counter (say figure or table etc.).
hyperref and cleveref amongst other packages provide this missing feature however, there might be other packages as well.
Here I present a solution which is working and quite quick if there should be no other package included (sometimes this is demanded by publishers and their weird settings!)
Without special package: Change the \p@figure references formatter macro to use \figurename.
The hyperref package is used here to show that the redefinition of \p@figure still works with hyperref.
\documentclass{article}
\usepackage{graphicx}
\usepackage{hyperref}
\makeatletter
\renewcommand{\p@figure}{\figurename\ }
\makeatother
\begin{document}
You must see the incredible \ref{fig:foo}.
\clearpage
\begin{figure}
\centering
\caption{Foo caption}
\label{fig:foo}
\end{figure}
\end{document}

\autoref(from thehyperrefpackage) and\cref(from thecleverefpackage). – Mico Mar 11 '17 at 21:24Figureetc. As Mico mentioned,cleverefandhyperrefprovide special commands for this. – Mar 11 '17 at 21:30