diff --git a/src/Pages/Search.js b/src/Pages/Search.js
index df73156155fd5ba1405a6601bd900df4448c7efa..5e5fcbd8c572eff3e3439dce20827644de52ce1d 100644
--- a/src/Pages/Search.js
+++ b/src/Pages/Search.js
@@ -50,11 +50,11 @@ export default function Search(props) {
   const [resultsCollection, setResultsCollection] = useState([]);
   const [resultsUser, setResultsUser] = useState([]);
   const [currOrder, setCurrOrder] = useState(order);
-  const [page] = useState(0);
+  const [page, setPage] = useState(0);
   const [isloading, setIsLoading] = useState(false);
   const [loadingMoreData, setLoadingMoreData] = useState(false);
   const [isFiltering, setIsFiltering] = useState(false);
-  const [resultsPerPage, setResultsPerPage] = useState(12);
+  const [resultsPerPage] = useState(12);
   const [showingResults, setShowingResults] = useState(0);
   const [totalResults, setTotalResults] = useState(0);
   const [options] = React.useState([
@@ -78,9 +78,15 @@ export default function Search(props) {
   currOption = option;
 
   function handleSuccessfulGet(data, headers) {
-    if (currOption === "LearningObject") setResultsResource(data);
-    else if (currOption === "Collection") setResultsCollection(data);
-    else if (currOption === "User") setResultsUser(data);
+    if (currOption === "LearningObject") {
+      setResultsResource((previousData) => previousData.concat(data));
+    }
+    else if (currOption === "Collection") {
+      setResultsCollection((previousData) => previousData.concat(data));
+    }
+    else if (currOption === "User") {
+      setResultsUser((previousData) => previousData.concat(data));
+    }
     dispatch({
       type: "SAVE_SEARCH",
       newSearch: {
@@ -91,7 +97,7 @@ export default function Search(props) {
     if (headers.has('X-Total-Count')) {
       setTotalResults(headers.get('X-Total-Count'));
     }
-    setShowingResults(data.length)
+    setShowingResults((previousSize) => data.length + previousSize)
     setIsLoading(false);
     setIsFiltering(false);
     setLoadingMoreData(false);
@@ -142,11 +148,11 @@ export default function Search(props) {
   }, [window.history.state === null ? true : window.history.state.key, state.currentUser.id])
 
   useEffect(() => {
-    if (resultsPerPage > 12) {
+    if (page > 0) {
       setIsLoading(true);
       collectStuff(option);
     }
-  }, [resultsPerPage]);
+  }, [page]);
 
   return (
     <div style={{ backgroundColor: "#f4f4f4" }}>
@@ -170,6 +176,11 @@ export default function Search(props) {
                   </div>
                   <Dropdown options={options} value={optionResult}
                     onChange={(e) => {
+                      setResultsCollection([]);
+                      setResultsResource([]);
+                      setResultsUser([]);
+                      setShowingResults(0);
+                      setPage(0);
                       setIsLoading(true);
                       currOption = e.value;
                       history.push(`/busca?query=${state.search.query}&search_class=${currOption}`)
@@ -246,7 +257,7 @@ export default function Search(props) {
                           }}
                           onClick={() => {
                             setLoadingMoreData(true);
-                            setResultsPerPage(resultsPerPage + 12)
+                            setPage(page + 1)
                           }}
                         >
                           {
@@ -318,7 +329,7 @@ export default function Search(props) {
                             }}
                             onClick={() => {
                               setLoadingMoreData(true);
-                              setResultsPerPage(resultsPerPage + 12)
+                              setPage(page + 1)
                               // collectStuff("LearningObject", "");
                             }}
                           >
@@ -391,7 +402,7 @@ export default function Search(props) {
                             }}
                             onClick={() => {
                               setLoadingMoreData(true);
-                              setResultsPerPage(resultsPerPage + 12)
+                              setPage(page + 1)
                               // collectStuff("User", "");
                             }}
                           >